home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DS-CD ROM 2 1993 August
/
DS CD-ROM 2.Ausgabe (August 1993).iso
/
programm
/
ds0257
/
doc.exe
/
STACKS.DOC
< prev
next >
Wrap
Text File
|
1992-02-02
|
3KB
|
71 lines
─────────────────────────────────────────────────────────────────────────────
Dokumentation zur Datei: STACKS.MAC
─────────────────────────────────────────────────────────────────────────────
STACKS.MAC - MACROs und Definitionen zur Nutzung der STACKS-Verwaltung
von DOS
(für den Assembler A86)
(c) Bernd Schemmer 1990 - 1992
Letzter Update: 02.02.1992
■ Hinweis:
---------
Die STACKS-Verwaltung wie sie hier vorrausgesetzt wird,
ist erst ab DOS 3.3 vorhanden (auch bei DOS 4+).
Sie wird mittels des STACKS-Befehls in der CONFIG-Datei
eingerichtet und stellt für Hardware-Interrupts eigene
Stacks aus einem StackPool zur Verfügung.
Alle hier aufgeführten Datenstrukturen, Macros und
Routinen beziehen sich auf UNDOKUMENTIERTE Features.
Sie sollten also nur in Ausnahmefällen benutzt werden.
■ Info-Quellen:
---------------
c't und Interrupt-Liste von Ralf Brown
■ Aufbau des Headers für den STACKS-Bereich
StacksArea STRUC [BX]
Stacks_IDWord dw ?
Stacks_Count dw ? ; Anzahl von STACKS (erster Parameter des
; STACKS-Befehls)
Stacks_1Stack dw ? ; Offset des ersten Stack
Stacks_Length dw ? ; Grösse eines Stacks (zweiter Parameter des
; STACKS-Befehls)
Stacks_FrameT dd ? ; Zeiger auf die Rahmentabelle
; Die Rahmentabelle enthält für jeden Stack
; einen Rahmen (= Frame)
Stacks_MFrame dw ? ; min. Rahmengrösse
Stacks_XFrame dw ? ; max. Rahmengrösse
Stacks_Akt dw ? ; Offset des nächsten zu belegenden Stacks
ENDS
■ Aufbau eines Eintrages in der Rahmentabelle des STACKS-Bereichs
(Anzahl Einträge = Inhalt des Feldes Stacks_Count im Header)
StackFrameArea STRUC [BX]
Frame_ID dw ? ; Kennung des zugehörigen Stacks
; 0 = frei, 1 = besetzt, 3 = gesperrt
Frame_StackP dd ? ; gesicherter Stackpointer
; (0:0 ->> Stack wurde noch nie benutzt)
Frame_Offs dw ? ; Offset der Stackspitze des zugehörigen
; Stacks aus dem Stackpool
ENDS
----------------------------
GetSTACKSData
Funktion: Macro zum Ermitteln der Daten des STACK-Bereichs
Ausgabe: CF = 1 ->> keine STACKS gefunden
ES und BX undefiniert
CF = 0 ->> STACKS installiert
ES:BX -> Header des Stack-Bereichs